#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 1005;

int fa[maxn],enemy[maxn],n,m;
bool vis[maxn];

int find(int x){
	while(x!=fa[x])	x=fa[x];
	return x;
}

void unionn(int x,int y){
	int fx = find(x);
	int fy = find(y);
	fa[fy]=fx;
}

int main(){
	cin>>n>>m;
	char r;
	for(int i=1;i<=n;i++)fa[i]=i;
	int a,b;
	for(int i=1;i<=m;i++){
		cin>>r>>a>>b;
		if(r=='F') unionn(a,b);
		if(r=='E'){
			if(enemy[a])unionn(enemy[a],b);
			if(enemy[b])unionn(enemy[b],a);
			enemy[a]=b;
		}
	}
	int ans=0;
	for(int i=1;i<=n;i++){
		int x = find(i);
		if(!vis[x]){
			ans++;
			vis[x]=true;
		}
	}
	cout<<ans<<endl;
	return 0;
}